package com.shop.entity;

import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.KeyType;
import com.mybatisflex.annotation.Table;
import java.io.Serializable;
import java.math.BigDecimal;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 用户收货地址 实体类。
 *
 * @author 彭新才
 * @since 2024-10-15
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Schema(description = "用户收货地址")
@Table(value = "shop_user_address")
public class ShopUserAddress implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 站点id
     */
    @Id(keyType = KeyType.Auto)
    @Schema(description = "站点id")
    private Long id;

    /**
     * 用户id
     */
    @Schema(description = "用户id")
    private Long userId;

    /**
     * 别名
     */
    @Schema(description = "别名")
    private String alias;

    /**
     * 姓名
     */
    @Schema(description = "姓名")
    private String name;

    /**
     * 电话
     */
    @Schema(description = "电话")
    private String tel;

    /**
     * 所在省
     */
    @Schema(description = "所在省")
    private Long province;

    /**
     * 所在市
     */
    @Schema(description = "所在市")
    private Long city;

    /**
     * 所在县/区
     */
    @Schema(description = "所在县/区")
    private Long county;

    /**
     * 详细地址
     */
    @Schema(description = "详细地址")
    private String address;

    /**
     * 地址最后一级编码
     */
    @Schema(description = "地址最后一级编码")
    private String addressLastCode;

    /**
     * 经度
     */
    @Schema(description = "经度")
    private BigDecimal lng;

    /**
     * 纬度
     */
    @Schema(description = "纬度")
    private BigDecimal lat;

    /**
     * 身份证姓名
     */
    @Schema(description = "身份证姓名")
    private String idcardName;

    /**
     * 身份证号码
     */
    @Schema(description = "身份证号码")
    private String idcardNumber;

    /**
     * 身份证人像面图片
     */
    @Schema(description = "身份证人像面图片")
    private String idcardFront;

    /**
     * 身份证国微面图片
     */
    @Schema(description = "身份证国微面图片")
    private String idcardBack;

    /**
     * 是否默认地址（0否, 1是）
     */
    @Schema(description = "是否默认地址（0否, 1是）")
    private Integer isDefault;

    /**
     * 是否删除（0否，1删除时间戳）
     */
    @Schema(description = "是否删除（0否，1删除时间戳）")
    private Long isDeleteTime;

    /**
     * 添加时间
     */
    @Schema(description = "添加时间")
    private Long addTime;

    /**
     * 更新时间
     */
    @Schema(description = "更新时间")
    private Long updTime;

}
